home *** CD-ROM | disk | FTP | other *** search
- import com.siemens.mp.game.Melody;
- import com.siemens.mp.game.MelodyComposer;
- import com.siemens.mp.game.Vibrator;
- import java.util.Vector;
-
- public class Sound {
- private static char[] noteTable = new char[]{'c', 'C', 'd', 'D', 'e', 'f', 'F', 'g', 'G', 'a', 'A', 'h'};
- public boolean useSound = true;
- public boolean useVibrator = true;
- private Vector melodies = new Vector();
-
- Sound(boolean var1, boolean var2) {
- this.useSound = var1;
- this.useVibrator = var2;
- }
-
- public void triggerVibrator(int var1) {
- if (this.useVibrator) {
- Vibrator.triggerVibrator(var1);
- }
-
- }
-
- public void playSound(int var1) {
- if (this.useSound) {
- ((Melody)this.melodies.elementAt(var1)).play();
- }
-
- }
-
- public void stopSound(int var1) {
- if (this.useSound) {
- Melody var10000 = (Melody)this.melodies.elementAt(var1);
- Melody.stop();
- }
-
- }
-
- public int newSound(String var1) {
- MelodyComposer var2 = new MelodyComposer();
- if (var1.toUpperCase().charAt(0) != 'S' && var1.charAt(1) != '1') {
- return -2;
- } else {
- int var3 = 2;
-
- int var7;
- for(byte var4 = 0; var3 < var1.length(); var3 = var7) {
- boolean var5;
- int var6;
- label91: {
- var5 = false;
- var6 = 59;
-
- for(var7 = var3; var7 < var1.length() && var1.charAt(var7) != '-'; ++var7) {
- }
-
- int var8;
- for(var8 = var7++; var7 < var1.length() && var1.charAt(var7) != '-'; ++var7) {
- }
-
- String var10 = var1.substring(var8 + 1, var7);
- int var14;
- int var15;
- switch (var10.toUpperCase().charAt(0)) {
- case '#':
- var6 = 59;
- var5 = true;
- break label91;
- case '@':
- var6 = 58;
- var5 = true;
- break label91;
- case 'L':
- String var12 = "" + var10.charAt(1);
- if (var10.length() == 3) {
- var12 = var12 + var10.charAt(2);
- }
-
- int var13 = Integer.valueOf(var12);
- switch (var13) {
- case 1:
- var4 = 0;
- break label91;
- case 2:
- var4 = 1;
- break label91;
- case 4:
- var4 = 2;
- break label91;
- case 8:
- var4 = 3;
- break label91;
- case 16:
- var4 = 4;
- break label91;
- case 32:
- var4 = 5;
- break label91;
- default:
- return -3;
- }
- case 'T':
- String var11 = var10.substring(1, var10.length());
- var2.setBPM(Integer.valueOf(var11));
- break label91;
- default:
- var14 = -1;
- var15 = 0;
- }
-
- for(; var15 < noteTable.length; ++var15) {
- if (var10.charAt(0) == noteTable[var15]) {
- var14 = var15;
- }
- }
-
- if (var14 == -1) {
- return -4;
- }
-
- int var16 = Integer.parseInt("" + var10.charAt(1));
- int var17 = var14 + 12 * var16;
- var6 = var17;
- var5 = true;
- }
-
- if (var5) {
- try {
- var2.appendNote(var6, var4);
- } catch (Exception var19) {
- ((Throwable)var19).printStackTrace();
- }
- }
- }
-
- this.melodies.addElement(var2.getMelody());
- System.gc();
- return this.melodies.size() - 1;
- }
- }
- }
-